﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace BoletoElectronicoDesktop.PagoEmpresas
{
    public partial class FormPagoEmpresas : Form
    {
        DataTable tabla;
        public FormPagoEmpresas()
        {
            InitializeComponent();
            //oculto el calendario
            monthCalendar1.Hide();
            monthCalendar2.Hide();
        }

        private void FormPagoEmpresas_Load(object sender, EventArgs e)
        {
            //abro el formulario maximizado
            this.WindowState = FormWindowState.Maximized; 

            //
            btnPagar.Enabled = false;

        }

        private void groupBox1_Enter(object sender, EventArgs e)
        {

        }

        private void btnPagar_Click(object sender, EventArgs e)
        {

            if (MessageBox.Show("Seguro que desea efectuar el pago?", "Pagar", MessageBoxButtons.YesNo) == DialogResult.Yes)
            {
                for (int i = 0; i < tabla.Rows.Count; i++)
                    PagoDAO.PagarFactura(tabla.Rows[i]["CompraID"].ToString(), tabla.Rows[i]["CompraMonto"].ToString(), txtBeneficiario.Text);
                    dataGridView1.DataSource = null;
                    Close();
            }
            else
            {
                Close();
            }

        }

        private void btnSeleccionarBeneficiario_Click(object sender, EventArgs e)
        {
            FormSeleccionarBeneficiario form = new FormSeleccionarBeneficiario();
            form.ShowDialog(this);
            txtBeneficiario.Text = form.idBeneficiario;
        }

        private void btnSeleccionFechaInicial_Click(object sender, EventArgs e)
        {
            //trae a la vista el calendario para elegir
            monthCalendar1.Visible = true;
        }

        private void btnSeleccionarFechaFinal_Click(object sender, EventArgs e)
        {
            //trae a la vista el calendario para elegir
            monthCalendar2.Visible = true;
        }

        private void monthCalendar1_DateSelected(object sender, DateRangeEventArgs e)
        {
            //pongo en el text box la fecha seleccionada
            string fecha = monthCalendar1.SelectionRange.Start.ToShortDateString();
            txtFechaInicial.Text = Funciones.convierteFecha(fecha);
            monthCalendar1.Hide();
        }

        private void monthCalendar2_DateSelected(object sender, DateRangeEventArgs e)
        {
            //pongo en el text box la fecha seleccionada
            string fecha = monthCalendar2.SelectionRange.Start.ToShortDateString();
            txtFechaFinal.Text = Funciones.convierteFecha(fecha);
            monthCalendar2.Hide();
        }

        private void btnBuscar_Click(object sender, EventArgs e)
        {
            //verifico que el usuario haya ingresado todos los datos
            if ((txtBeneficiario.Text == "") || (txtFechaInicial.Text == "") || (txtFechaFinal.Text == ""))
                MessageBox.Show("Por favor, complete todos los campos de búsqueda");
            else //completó todos los campos
            {
                //valido que la fecha de fin sea >= q la fecha de inicio;
                int inicio = Convert.ToInt32(txtFechaInicial.Text);
                int fin = Convert.ToInt32(txtFechaFinal.Text);
                if (inicio > fin)
                    MessageBox.Show("Ingrese una fecha de finalización mayor o igual a la de inicio");
                else //todos los datos están bien cargados
                {
                    tabla = PagoDAO.ObtenerFacturasAPagar(txtBeneficiario.Text, txtFechaInicial.Text, txtFechaFinal.Text);
                    dataGridView1.DataSource = tabla;
                    dataGridView1.Columns["CompraID"].Visible = false;
                    if (tabla.Rows.Count > 0)
                        btnPagar.Enabled = true;
                    else
                    {
                        MessageBox.Show("No hay facturas por pagar al beneficiario en el período especificado");
                    }
                }

            }
        }

        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }
    }
}
